E—A Language for Thread-Level Parallel Programming on Synchronous Shared Memory NOCs
نویسنده
چکیده
As systems on chip are evolving to networks on chip (NOC) providing a unified communication infrastructure for a number of computational resources, being able to easily implement computational tasks as a parallel program that can be efficiently executed by multiple resources together is becoming increasingly important. Recent advances in thread-level parallel (TLP) architectures have made it possible to implement efficiently an easy-to-use synchronous shared memory programming model (Parallel Random Access Machine, PRAM) on a NOC. In this paper we describe a novel programming language, called e, for fine-grained TLP programming on synchronous shared memory NOC architectures realizing the PRAM model. The language uses a familiar c-like syntax and provides support for shared and private variables, arbitrary hierarchical groups of threads, and synchronous control structures. This allows a programmer to use various advanced TLP programming techniques like data parallelism, divide-and-conquer technique, different blocking techniques, and both synchronous and asynchronous programming style. We will also shortly experiment the e-language with real parallel programs using our experimental e-compiler and scalable Eclipse NOC architecture. Key-Words: Thread-level parallel programming languages, parallel random access machine, networks on chip ing between threads making MPAs difficult to program. In shared memory architectures (SMA) communication happens just by referring to the shared memory, data and program partitioning happens by allocating data structures from the shared memory making programming much easier. Unfortunately most SMAs consist of multiple interconnected processor-cache pairs making cache coherency and synchronicity maintenance very expensive. Recent advances in TLP architectures [3, 4], however, suggest that it possible to implement a cacheless and synchronous SMA realizing the parallel random access machine (PRAM) model [5] on a NOC. In this paper we describe a novel programming language, called e, for fine-grained TLP programming on synchronous SMA NOCs realizing the PRAM model. The language uses a familiar c-like syntax and provides support for shared and private variables, arbitrary hierarchical groups of threads, and synchronous control structures. This allows a programmer to use various advanced TLP programming techniques like data parallelism, divide-and-conquer techniques, different blocking techniques, and both synchronous and asynchronous programming style [6]. We made also a short experimentation with the e-language by implementing a number of familiar TLP algorithms with e, compiling them with our experimental e-compiler and executing them in our scalable high performance Eclipse NOC architecture [4].
منابع مشابه
Reducing the complexity of debugging parallel REPLICA programs with pluggable abstraction patterns
Traditional debuggers focus on a single thread at a time or are better suited for concurrent programming with a low number of interacting threads and/or distributed memory, making it hard to monitor a massively data-parallel program on a shared memory multi-core system. This work considers a globally step-synchronous model of computation. Compared to contemporary multi-core processors with inde...
متن کاملProgramming in Manticore, a Heterogenous Parallel Functional Language
The Manticore project is an effort to design and implement a new functional language for parallel programming. Unlike many earlier parallel languages, Manticore is a heterogeneous language that supports parallelism at multiple levels. Specifically, the Manticore language combines Concurrent ML-style explicit concurrency with fine-grain, implicitly threaded, parallel constructs. These lectures w...
متن کاملS a I S T Bo S T O N Os Support for Portable Bulk Synchronous Parallel Programs
For parallel programs to become portable, they must be executable with uniform e ciency on a variety of hardware platforms, which is not the case at present. In 1990, Valiant proposed Bulk-Synchronous Parallelism (BSP) as a model on which portable parallel programs can be built [Val90a]. We argue that shared-memory BSP is e ciently implementable on a wide variety of parallel hardware, and that ...
متن کاملIntegrating Synchronous and Asynchronous Paradigms: The Fork95 Parallel Programming Language
The SB-PRAM is a lock-step-synchronous, massively parallel multiprocessor currently being built at Saarbr ucken University, with up to 4096 RISC-style processing elements and with a (from the program-mer's view) physically shared memory of up to 2GByte with uniform memory access time. Fork95 is a redesign of the Pram language FORK, based on ANSI C, with additional constructs to create parallel ...
متن کاملEcient and Reusable Implementation of Fine-grain Multithreading and Garbage Collection on Distributed-memory Parallel Computers
This thesis studies e cient runtime systems for parallelism management (multithreading) and memory management (garbage collection) on largescale distributed-memory parallel computers. Both are fundamental primitives for implementing high-level parallel programming languages that support dynamic parallelism and dynamic data structures. A distinguishing feature of the developed multithreading sys...
متن کامل